// 2s 之后返回双倍的值 新建一个异步函数
function doubleAfter2seconds(num) {
  return new Promise((resolve, reject) => {
      setTimeout(() => {
          resolve(2 * num)
      }, 2000);
  } )
}

// async await方式
async function testResult() {
  let result = await doubleAfter2seconds(30);
  console.log(result);
  console.log('在后面执行')
  // return result 返回 Promise
}

// then catch方式
function getValue() {
  doubleAfter2seconds(30).then(value => {
    console.log(value)
    console.log('在后面执行')
    // return value 返回 undefined
  }).catch(err => {
    console.log(err)
  })
}
// 可以看出虽然执行的结果一致，但是async await避免了层层嵌套的问他，让代码可以像同步一样写起来
// console.log(getValue())
// console.log(testResult())
// getValue()
testResult()
console.log('开始执行')